home *** CD-ROM | disk | FTP | other *** search
/ Aminet 41 / Aminet 41 (2001)(Schatztruhe)[!][Feb 2001].iso / Aminet / gfx / edit / AmiCAD_2.07.lha / AmiCAD / ARexx / Tourner.AmiCAD < prev    next >
Text File  |  2000-11-12  |  2KB  |  80 lines

  1. /* Rotation d'un composant en conservant un emplacement
  2. correct de sa référence et de sa valeur.
  3. Version 1.00: 11 août 1998
  4. Version 1.01: 14 avril 2000 (Adaptation version 2.05)
  5. Version 1.02: 12 novembre 2000 (Localisation anglais/français)
  6. $VER: Tourner.AmiCAD 1.02, © R.Florac, 12 novembre 2000 */
  7.  
  8. options results
  9.  
  10. signal on error
  11. signal on syntax
  12.  
  13. 'LANGUAGE'
  14. if result="français.language" then fr=1
  15. else fr=0
  16.  
  17. nr=0; objet=1
  18. 'SAVEALL:OBJECTS'; objets=result
  19. if objets=0 then do
  20.     if fr=1 then 'MESSAGE("Il n''y a aucun objet"+CHR(10)+"sur ce schéma !")'
  21.     else 'MESSAGE("There is no object"+CHR(10)+"on the document !")'
  22.     exit
  23. end
  24. do while objet>0
  25.     'O=FINDOBJ('objet',1,-1,-1)'; objet=result
  26.     if objet>0 then do
  27.     'TEST(O)'
  28.     if result>0 then do
  29.         nr=nr+1
  30.         call tourner(objet)
  31.     end
  32.     objet=objet+1
  33.     if objet>objets then objet=0
  34.     end
  35. end
  36.  
  37. if nr=0 then do
  38.     if fr=1 then 'PICKOBJ("Cliquez sur l''objet à faire tourner")'
  39.     else 'PICKOBJ("Click on the objet to rotate")'
  40.     objet=result
  41.     call tourner(objet)
  42. end
  43.  
  44. exit
  45.  
  46. tourner: procedure
  47.     parse arg o
  48.     'GETPOS(O='o')'; p=result
  49.     'ROTATE(O,1):V=GETVAL(O)'
  50.     if result>0 then do
  51.     if p=1 | p=3 then do
  52.         'MOVE(V,COL(O)-COL(V)+10,LINE(O)+HEIGHT(O)-LINE(V)+9)'
  53.     end
  54.     else do
  55.         'MOVE(V,COL(O)+WIDTH(O)-COL(V)+9,LINE(O)+HEIGHT(O)-(HEIGHT(O)-20)/2-1-LINE(V))'
  56.     end
  57.     end
  58.     'R=GETREF(O)'
  59.     if result>0 then do
  60.     if p=1 | p=3 then do
  61.         'MOVE(R,COL(O)-COL(R)+10,LINE(O)-LINE(R))'
  62.     end
  63.     else do
  64.         'MOVE(R,COL(O)+WIDTH(O)-COL(R)+9,LINE(O)+HEIGHT(O)-(HEIGHT(O)-20)/2-11-LINE(R))'
  65.     end
  66.     end
  67. return
  68.  
  69. /* Traitement des erreurs, interruption du programme */
  70. syntax:
  71. erreur=RC
  72. if fr=1 then 'MESSAGE("Script Tourner.AmiCAD"+CHR(10)+"Erreur de syntaxe"+CHR(10)+"en ligne 'SIGL'"+CHR(10)+"'errortext(erreur)'")'
  73. else 'MESSAGE("Tourner.AmiCAD script"+CHR(10)+"Syntax error"+CHR(10)+"in line 'SIGL'"+CHR(10)+"'errortext(erreur)'")'
  74. exit
  75.  
  76. error:
  77. if fr=1 then 'MESSAGE("Script Tourner.AmiCAD"+CHR(10)+"Erreur en ligne 'SIGL'")'
  78. else 'MESSAGE("Tourner.AmiCAD script"+CHR(10)+"Error in line 'SIGL'")'
  79. exit
  80.